An interpreted function (including macro expansion functions) is
represented in one of the following formats.
(lambda lambda-list . body )
- A lambda-expression with null lexical environment and with no implicit
block around it. This type of function typically appears when
`(lambda lambda-list . body ) is evaluated.
(lambda-block block-name lambda-list . body )
- A lambda-expression with null lexical environment but with an
implicit block around it. This type of function typically appears
when (defun function-name lambda-list . body ) is
evaluated. In this case, block-name is identical to function-name .
(lambda-closure env1 env2 env3 lambda-list
. body )
- A lambda-expression with lexical environments but with no
implicit block around it. This type of function typically appears
when #`(lambda lambda-list . body ) (or, equivalently,
(function (lambda lambda-list . body )) ) is
evaluated. env1 , env2 , and env3 represent
the variable bindings, the local function/macro definitions, and
the tag/block-name establishments, respectively, at the time the closure
was created.
(lambda-block-closure env1 env2 env3
block-name lambda-list . body )
- A lambda-expression with lexical environments and with an
implicit block around it. Local functions and local macros are
represented in this format. env1 , env2 , and env3
represent the variable bindings, the local function/macro bindings,
and the tag/block-name establishments, respectively, at the time the
local function/macro was created by flet, labels, or macrolet. The block-name is identical to the local
function/macro name.
Compiled functions (including compiled macro-expansion functions) are
printed in the following formats.
#<compiled-function name >
or
#<compiled-closure nil>
Incidentally, the value of (symbol-function special-form-name ) is a list,
(special . address )
if special-form-name names a special form.
Common Lisp constants related to functions have the following values
in KCL.
call-arguments-limit = 64
lambda-list-keywords = (&optional &rest &key &allow-
other-keys &aux &whole
&environment &body)
lambda-parameters-limit = 64
multiple-values-limit = 32
Refer to the Common Lisp Reference Manual for their meanings.